/**
 * <h3>ICarouselService</h3>
 * <p>轮播图信息管理服务接口</p>
 *
 * <h3>功能描述</h3>
 * <p>定义轮播图信息增删改查等基础业务操作，供实现类完成具体数据库交互逻辑</p>
 * <p>接口基于 MyBatis Plus 的 {@link IService} 扩展，统一规范数据访问层行为</p>
 * <p>支持轮播图的创建、删除、查询等核心功能，用于前端首页轮播展示</p>
 *
 * <h3>元数据</h3>
 * <ul>
 *    <li>作者：系统生成</li>
 *    <li>创建日期：2025年01月</li>
 * </ul>
 *
 * <h3>其他信息</h3>
 * <ul>
 *    <li>参考链接：<a href="https://example.com">官方网页</a></li>
 *    <li>示例代码：{@code new ICarouselService()} </li>
 * </ul>
 *
 * @apiNote 接口方法需保证事务一致性与线程安全；实际实现应避免直接new
 * @implSpec 继承自 {@link IService<CarouselDTO>}，扩展了轮播图查询、新增、删除等方法
 * @since 1.0.0
 */

package com.dnndo.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dnndo.system.domain.dto.CarouselDTO;

import java.util.List;

/**
 * 轮播图服务接口
 */
public interface ICarouselService extends IService<CarouselDTO> {
    
    /**
     * 查询轮播图列表
     * @return List<CarouseVO> 轮播图信息列表
     * @see com.dnndo.system.domain.vo.CarouseVO
     */
    List<CarouselDTO> selectCarouselList(CarouselDTO dto);

    /**
     * 新增轮播图
     * @param dto 包含新增字段的轮播图数据传输对象
     * @return int 受影响的数据库记录数，用于判断操作是否成功
     * @see com.dnndo.system.domain.dto.CarouselDTO
     */
    int insertCarousel(CarouselDTO dto);

    /**
     * 删除轮播图
     * @param carouselId 要删除的轮播图唯一标识符
     * @return int 受影响的数据库记录数，用于判断操作是否成功
     * @see com.dnndo.system.domain.dto.CarouselDTO
     */
    int deleteCarouselById(Integer carouselId);
}
